package 所有的题类.ZA.链表;

import com.kiwi.nixu.common.LNode;

import java.util.Arrays;
import java.util.List;

public class 奇偶链表 {
    public static void main(String[] args) {
        LNode lNode1 = arrayToLNode(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));
        LNode lNode2 = oddEvenList(lNode1);
        System.out.println(lNode2.data);
    }

    public static LNode arrayToLNode(List<Integer> list){
        LNode lNode = new LNode(list.get(0));
        LNode cur=lNode;
        for (int i = 1; i < list.size(); i++) {
            LNode tmp=new LNode(list.get(i));
            cur.next=tmp;
            cur=tmp;
        }
        return lNode;
    }

    public static LNode oddEvenList(LNode head) {
        if (head == null) {
            return head;
        }
        LNode evenHead = head.next;
        LNode odd = head, even = evenHead;
        while (even != null && even.next != null) {
            odd.next = even.next;
            odd = odd.next;
            even.next = odd.next;
            even = even.next;
        }
        odd.next = evenHead;
        return head;
    }
    //
    //public static LNode oddEvenList(LNode head) {
    //    LNode sentileJ=new LNode(-1);
    //    LNode sentileO=new LNode(-1);
    //    LNode slow=head;//奇数
    //    LNode fast=head.next;//偶数
    //    sentileJ.next=slow;
    //    sentileO.next=fast;
    //    while (slow!=null && slow.next!=null){
    //        LNode tmpF=slow.next.next;
    //        slow.next=tmpF;
    //        slow=tmpF;
    //    }
    //    while (fast !=null && fast.next!=null){
    //        LNode tmpF=fast.next.next;
    //        fast.next=tmpF;
    //        fast=tmpF;
    //    }
    //
    //
    //    slow.next=sentileO.next;
    //    return sentileJ.next;
    //}
}
